Information processing systems often perform an operation of storing a large amount of data in a storage medium. For instance, information systems store data in a storage device such as a Hard Disk Drive (HDD), and back up the data stored in the storage device into a storage medium in case of a failure or the like. When backing up data, for example, a magnetic tape is sometimes used as a storage medium due to its high capacity and high cost effectiveness in terms of storage capacity. Upon writing data to a storage medium, the data are compressed before being written. This reduces the data amount, and improves the usage efficiency of the storage medium.
It is known that, in the case of compressing data and writing the compressed data to a storage medium, the data may be divided into a plurality of blocks, and compression of a divided block and writing of an already compressed block into the storage medium may be performed in parallel in order to reduce the overall processing time. Further, there is a known technique that may be used in the above case. This technique compresses a single block with a plurality of different algorithms so as to generate a plurality of compressed blocks, and writes a compressed block having the highest compression rate (see, for example, Japanese Laid-open Patent Publications No. 2005-293224 and No. 2000-222257, and Japanese National Publication of International Patent Application. No. 2004-535713).
However, in the case where compression of one of divided blocks of data to be written and writing of the previous block that is already compressed are performed in parallel, even if compression of the block is completed, the previous compressed block may be still being written. In this case, writing of the next compressed block is not started until writing of the previous block is completed. This results in a waiting time in the compression process. Also, even if writing of the compressed block is completed, the next block may be still being compressed. In this case, writing of the next block is not started until compression thereof is completed. This results in a waiting time in the compression process. Accordingly, the processing time is increased, which reduces operating efficiency.